package chu.dejian.restApi;

import java.util.List;

import retrofit.http.Body;
import retrofit.http.DELETE;
import retrofit.http.GET;
import retrofit.http.POST;
import chu.dejian.models.*;
import retrofit.Callback;
import retrofit.http.PUT;
import retrofit.http.Path;
import retrofit.http.Query;


/**
 * Created by chuchuyajun on 03/09/2015.
 */
public interface RestApiService {
    /** 登录 **/
    @POST("/login.json")
    void login(@Body LoginRequest request, Callback<LoginResponse> cb);

    /** 登出 **/
    @POST("/logout.json")
    void logout(@Body String tokenString, Callback<?> cb);

    /** 获取收到的关注请求 **/
    @GET("/attender_request.json")
    void getReceivedAttenderRequest(@Query("page") int page,Callback<GetReceivedAttenderRequestResponse> cb);

    /** 获取本人发送出去的关注请求 **/
    @GET("/user/attender_request.json")
    void getSendedAttenderRequest(@Query("page") int page,Callback<GetSendedAttenderRequestResponse> cb);

    /** 对关注请求执行操作 **/
    @PUT("/attender_request/{Request_ID}.json")
    void putAttenderRequest(@Path("Request_ID") int requestId, @Body PutAttenderRequestRequest request,Callback<PutAttenderRequestResponse> cb);

    /** 用户提交关注请求 **/
    @POST("/user/attender_request.json")
    void postAttenderRequest(@Body PostAttenderRequestRequest request,Callback<PostAttenderRequestResponse> cb);

    /** 删除用户发送过的请求 **/
    @DELETE("/user/attender_request/{Request_ID}.json")
    void deleteAttenderRequest(@Path("Request_ID") int requestId,Callback<?> cb);

    /** 用户批量提交关注请求 **/
    @POST("/user/attender_request.json")
    void postAttendersRequest(@Body List<PostAttenderRequestRequest> requestList,Callback<PostAttendersRequestResponse> cb);

    /** 获取我关注的用户列表 **/
    @GET("/attendees.json")
    void getAttendees(@Query("page") int page,Callback<GetAttendeesResponse> cb);

    /** 获取关注我的用户用户列表 **/
    @GET("/user/attenders.json")
    void getAttenders(@Query("page") int page,Callback<GetAttendersResponse> cb);

    /** 修改关注 **/
    @PUT("/attendees/{Attend_ID}.json")
    void putAttendees(@Path("Attend_ID") int attendId,@Body PutAttendeesRequest request,Callback<?> cb);

    /** 获取关注消息 **/
    @GET("/attender_messages.json")
    void getAttenderMessage(@Query("page") int page,@Query("type") int type,Callback<GetAttenderMessagesResponse> cb);

   /** 用户删除关注人 **/
    @DELETE("/user/attender/{atid}.json")
    void deleteAttender(@Path("atid") int atid,Callback<?> cb);

    /** 上传测量结果 **/
    @POST("/device/measurement_us.json")
    void postMeasurement(@Body PostMeasurementRequest request,Callback<?> cb);

    /** 获取测量记录 **/
    @GET("/device/measurement.json")
    void getMeasurement(@Query("page") int page,Callback<GetMeasurementResponse> response);

    @GET("/device/measurement.json")
    void getMeasurement(@Query("From_time") String fromTime,@Query("to_time") String toTime, Callback<GetMeasurementResponse> response);

    /** 注册设备 **/
//    @POST("/device/register.json")
//    void registerDevices
}
